Methods and apparatus for defining manhattan power grid structures having a reduced number of vias

ABSTRACT

A method for producing a power grid structure (having stripe, rail, and via components) of an IC. The method reduces the number of vias in the power grid structure and the diagonal wiring blockage caused by the vias while still meeting design specifications. Other embodiments provide a method for locating vias in the power grid structure in such a way as to be especially beneficial to 45° or 135° diagonal wiring paths. The method includes processes of a power grid planner, power grid router, power grid verifier, and global signal router that are used iteratively to define and produce a power grid structure. Other embodiments of the invention provide for arrangements of vias in via arrays where diagonal wiring paths are facilitated near the edges of the via arrays. A bounding box enclosing these via arrays have an aspect ratio that is approximately equal to 1.

CLAIM OF BENEFIT TO RELATED APPLICATION OF THE INVENTION

This application is a divisional application of U.S. patent applicationSer. No. 10/452,189, filed Jun. 01, 2003, now issued as U.S. Pat. No.7,272,803, entitled “Methods and Apparatus for Defining Manhattan PowerGrid Structures Having a Reduced Number of Vias”, which is incorporatedherein by reference.

FIELD OF THE INVENTION

The invention is directed towards methods and apparatus for definingManhattan power grid structures having a reduced number of vias for usein an integrated circuit.

BACKGROUND OF THE INVENTION

An integrated circuit (“IC”) is a device (e.g., a semiconductor device)that includes many electronic components, such as transistors,resistors, diodes, etc. These components are often interconnected toform multiple circuit components, such as gates, cells, memory units,arithmetic units, controllers, decoders, etc. An IC includes multiplelayers of signal wiring that interconnect its electronic and circuitcomponents. Traditionally, IC's use preferred direction (“PD”) wiringmodels, which specify a preferred wiring direction for each of theirwiring layers. In preferred direction wiring models, the preferreddirection typically alternates between successive wiring layers.

One example of a PD wiring model is the PD Manhattan wiring model, whichspecifies alternating layers of preferred-direction horizontal andvertical wiring. Another example of a PD wiring model is the PD diagonalwiring model, which specifies alternating layers of preferred-directiondiagonal wiring. The PD diagonal wiring model can allow for shorterwiring distances than the PD Manhattan wiring model and can decrease thetotal wirelength needed to interconnect the electronic and circuitcomponents of an IC. The PD diagonal wiring model is described in detailin U.S. patent application Ser. No. 10/334,690, now issued as U.S. Pat.No. 6,988,257, filed Dec. 31, 2002, entitled “Method and Apparatus forRouting,” incorporated herein by reference and in U.S. patentapplication Ser. No. 10/013,819, now issued as U.S. Pat. No. 7,003,754,filed Dec. 7, 2001, entitled “Routing Method and Apparatus That UseDiagonal Routes,” incorporated herein by reference.

Design engineers design IC's by transforming logical or circuitdescriptions of the IC's into geometric descriptions, called layouts. IClayouts typically include (1) circuit modules (i.e., geometricrepresentations of electronic or circuit IC components) with signalpins, and (2) interconnect lines (i.e., geometric representations ofsignal wiring) that connect the signal pins of the circuit modules. Asignal net is typically defined as a collection of signal pins that needto be connected.

To create layouts, design engineers typically use electronic designautomation (“EDA”) applications. These applications provide sets ofcomputer-based tools for creating, editing, and analyzing IC designlayouts. One EDA tool is a signal wire router that defines routes forinterconnect lines that connect the signal pins of signal nets. Signalwire routing is generally divided into two phases: global signal routingand detailed signal routing. For each signal net, global signal routinggenerates a “loose” route for the interconnect lines that are to connectthe signal pins of the signal net. The “looseness” of a global signalroute depends on the particular global signal router used. After globalsignal routes have been created, the detailed signal routing createsspecific individual routes for each signal net. A signal wire routerthat consistently explores diagonal routing directions (referred toherein as a diagonal wire router) is described in the aforementionedpatent application titled “Method and Apparatus for Routing.”

Each IC also contains a power grid structure that provides power andground to each electronic and circuit component of an IC. Eachelectronic or circuit IC component has a power pin and a ground pin thatis connected to the power grid structure. A power net is typicallydefined as a collection of power pins that need to be connected and aground net is typically defined as a collection of ground pins that needto be connected.

Power grid structure components include stripes, rails, and vias whichmust be of a certain strength (i.e., size) to meet design specifications(i.e., minimum specifications that the power grid structure must meet inorder to be acceptable for use in the IC). Power grid components,however, compete with signal wiring for area on an IC layer since theytake up area on the IC layer that signal wiring could otherwise occupy.Also, power grid structure components can cause substantial blockage ofsignal wiring paths, especially on layers with the PD diagonal wiringmodel.

FIG. 1 illustrates a top view of a region of an IC layout having aconventional power grid structure 100. The power grid structure 100includes stripes 105 and 107, rails 110 and 112, and vias 115 and 117.Stripes 105 and 107 are typically positioned vertically (i.e., parallelto the layout's y-coordinate axis) across an upper layer of the IC andprovide power and ground to the IC. A stripe that carries power isreferred to as a power stripe 105 and a stripe that carries ground isreferred to as a ground stripe 107.

Rails 110 and 112 are typically positioned horizontally (i.e., parallelto the layout's x-coordinate axis) across at least one lower layer ofthe IC. Each rail is connected to a stripe through vias. A railconnected to a power stripe 105 is referred to as a power rail 110 and arail connected to a ground stripe 107 is referred to as a ground rail112.

Vias 115 and 117 are positioned perpendicular to the IC's layers (i.e.,parallel to the layout's z-coordinate axis) and distribute power orground from the stripes to the rails. A via that connects a power stripe105 to a power rail 110 is referred to as a power via 115 and a via thatconnects a ground stripe 107 and a ground rail 112 is referred to as aground via 117.

Multiple vias are arranged in a via array which is used to connect astripe to a rail. For illustrative purposes, FIG. 1 shows a top view ofa via array as enclosed by a rectangular bounding box, the via arraybeing comprised of multiple vias. Since the vias of the power gridstructure are positioned upright through the IC, they can cause blockingof the signal wiring needed to interconnect the electronic and circuitcomponents of the IC. The amount of wiring blockage varies from layer tolayer depending on the PD wiring model of the layer. As shown in FIG. 1,a 45° diagonal direction arrow 130 and a 135° diagonal direction arrow132 illustrate how diagonal wiring paths are blocked by vias 115 and 117of the conventional power grid structure 100.

Conventionally, design engineers manually define the power gridstructure by methods of trial and error. For example, designer engineerstypically estimate stripe width and stripe spacing values (the distancefrom one stripe to the next) based on prior experience. Also, a powervia 115 (or power via array) is typically located at every intersectionof a power stripe 105 and power rail 110 and a ground via 117 (or groundvia array) is typically located at every intersection of a ground stripe107 and ground rail 112. Placing a power via (or power via array) atevery power stripe and power rail intersection and a ground via (orground via array) at every ground stripe and ground rail intersectiontypically places more vias (or via arrays) in the power grid structurethan necessary to meet design specifications for the power gridstructure. Thus, the vias of the power grid structure take up more areaand cause more signal wiring blockage than necessary on an IC layer. Assuch, there is a need for an automated method and apparatus for reducingthe number of vias (or via arrays) in a power grid structure while stillmeeting the design specifications for the power grid structure.

In addition, multiple vias are typically arranged in a via array thatcauses significant diagonal wiring blockage near the edges of the viaarray. FIG. 8 shows a top view of a conventional via array 800. The viaarray 800 is enclosed by a rectangular bounding box 805 and is comprisedof multiple vias 810. Diagonal direction arrows 820 illustrate howdiagonal wiring paths are blocked by vias 810 near the edges of the viaarray 800. Therefore, there is also a need for via arrays having viaarrangements that do not cause significant diagonal wiring blockage nearthe edges of the via array.

SUMMARY OF THE INVENTION

Some embodiments of the invention provide a method for defining andproducing a power grid structure (having stripe, rail, and viacomponents) of an IC with a reduced number of vias (or via arrays). Themethod reduces the area of the power grid structure and the diagonalwiring blockage caused by the power grid structure while still meetingdesign specifications. Other embodiments of the invention provide amethod for locating vias (or via arrays) in the power grid structure insuch a way as to be especially beneficial to 45° or 135° diagonal wiringpaths. The method includes processes of a power grid planner, power gridrouter, power grid verifier, and global signal router that are usediteratively to define and produce a power grid structure.

The processes of the power grid planner include receiving designspecifications and sending the design specifications to the power gridverifier. The power grid planner also receives dimensions and locationsof power grid components for each IC layer and sends the dimensions andlocations to the power grid router. The dimensions and locations ofpower grid components place a power via (or power via array) at everypower stripe and power rail intersection and a ground via (or ground viaarray) at every ground stripe and ground rail intersection.

The power grid router receives the dimensions and locations of the powergrid components and physically lays down the power grid components foreach layer of the IC. The power grid verifier tests the resulting powergrid structure to determine if the power grid structure meets the designspecifications. If the power grid structure meets the designspecifications, the global signal router performs global signal routingoperations for each signal net of the IC.

If the global signal routing is not successful, the power grid plannermodifies via or via array locations and/or reduces the number of vias orvia arrays in the power grid structure to determine refined dimensionsand locations of power grid components. For example, the power gridplanner may change the locations of the vias or via arrays to bebeneficial to 45° diagonal preferred wiring or to 135° diagonalpreferred wiring. Or, the power grid planner may reduce the number ofvias or via arrays in the power grid structure by locating a power via(or power via array) only at every Dth power intersection and a groundvia (or ground via array) only at every Dth ground intersection, D beingan integer greater than 1. The power grid planner may modify the via orvia array locations and/or reduce the number of vias or via arrays bymethods of trial and error or by using predetermined formulas.

The power grid planner then determines refined dimensions and locationsfor the power grid components given any modifications that were made.The processes of the power grid planner, the power grid router, thepower grid verifier, and the global signal router repeat in an iterativeloop that modifies the via or via array locations and/or reduces thenumber of vias or via arrays until the global signal routing issuccessful.

Other embodiments of the invention provide for arrangements of vias invia arrays where diagonal wiring paths are facilitated near the edges ofthe via arrays. A bounding box enclosing these via arrays have an aspectratio that is approximately equal to 1.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of theinvention are set forth in the following figures.

FIG. 1 illustrates a top view of a region of an IC layout having aconventional power grid structure.

FIG. 2 illustrates a top view of a region of an IC layout having a powergrid structure with a reduced number of vias in accordance with thepresent invention.

FIG. 3 illustrates a top view of a region of an IC layout having a powergrid structure with a spacing width between stripes that is an integermultiple of the spacing width between rails.

FIG. 4 illustrates a top view of a region of an IC layout having a powergrid structure with a reduced number of vias that is beneficial to 45°diagonal wiring paths.

FIG. 5 illustrates a top view of a region of an IC layout having a powergrid structure with a reduced number of vias that is beneficial to 135°diagonal wiring paths.

FIG. 6 shows a general process for defining and producing a power gridstructure of an IC with a reduced number of vias in accordance with thepresent invention.

FIG. 7 shows a process of a power grid planner for defining andproducing a power grid structure of an IC with a reduced number of viasin accordance with the present invention.

FIG. 8 shows a top view of a conventional via array.

FIGS. 9A and 9B show a top view of a via array that is beneficial todiagonal wiring paths.

FIG. 10 shows a top view of another conventional via array.

FIGS. 11A and 11B show a top view of another via array that isbeneficial to diagonal wiring paths.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, numerous details are set forth for purposeof explanation. However, one of ordinary skill in the art will realizethat the invention may be practiced without the use of these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order not to obscure the description of theinvention with unnecessary detail.

Some embodiments of the invention provide a method for defining andproducing a power grid structure (having stripe, rail, and viacomponents) of an IC with a reduced number of vias (or via arrays). Themethod reduces the area of the power grid structure and the diagonalwiring blockage caused by the power grid structure while still meetingdesign specifications. Other embodiments of the invention provide amethod for locating vias (or via arrays) in the power grid structure insuch a way as to be especially beneficial to 45° or 135° diagonal wiringpaths. The method includes processes of a power grid planner, power gridrouter, power grid verifier, and global signal router that are usediteratively to define and produce a power grid structure.

The processes of the power grid planner include receiving designspecifications and sending the design specifications to the power gridverifier. The power grid planner also receives dimensions and locationsof power grid components for each IC layer and sends the dimensions andlocations to the power grid router. The dimensions and locations ofpower grid components place a power via (or power via array) at everypower stripe and power rail intersection and a ground via (or ground viaarray) at every ground stripe and ground rail intersection.

The power grid router receives the dimensions and locations of the powergrid components and physically lays down the power grid components foreach layer of the IC. The power grid verifier tests the resulting powergrid structure to determine if the power grid structure meets the designspecifications. If the power grid structure meets the designspecifications, the global signal router performs global signal routingoperations for each signal net of the IC.

If the global signal routing is not successful, the power grid plannermodifies via or via array locations and/or reduces the number of vias orvia arrays in the power grid structure to determine refined dimensionsand locations of power grid components. For example, the power gridplanner may change the locations of the vias or via arrays to bebeneficial to 45° diagonal preferred wiring or to 135° diagonalpreferred wiring. Or, the power grid planner may reduce the number ofvias or via arrays in the power grid structure by locating a power via(or power via array) only at every Dth power intersection and a groundvia (or ground via array) only at every Dth ground intersection, D beingan integer greater than 1. The power grid planner may modify the via orvia array locations and/or reduce the number of vias or via arrays bymethods of trial and error or by using predetermined formulas.

The power grid planner then determines refined dimensions and locationsfor the power grid components given any modifications that were made.The processes of the power grid planner, the power grid router, thepower grid verifier, and the global signal router repeat in an iterativeloop that modifies the via or via array locations and/or reduces thenumber of vias or via arrays until the global signal routing issuccessful.

The above described embodiments of the invention are described below inrelation to section I. Other embodiments of the invention provide forarrangements of vias in via arrays where diagonal wiring paths arefacilitated near the edges of the via arrays. A bounding box enclosingthese via arrays have an aspect ratio that is approximately equal to 1.These embodiments are described below in relation to section II.

In the embodiments described below, the power grid structure isdescribed in relation to a six-layer wiring model that has horizontalwiring on wiring layer 1, vertical wiring on wiring layer 2, horizontalwiring on wiring layer 3, 45° diagonal wiring on wiring layer 4, 135°diagonal wiring on wiring layer 5, and vertical wiring on wiring layer6. One of ordinary skill in the art will realize that the power gridstructure can be used in other wiring models in other embodiments. Insome embodiments, an interconnect line is “diagonal” if it forms anangle other than 0° or 90° with respect to the layout's Cartesiancoordinate axes, which are typically parallel with the layout's boundaryand/or the boundary of the layout's expected IC. A component orinterconnect line is “horizontal” or “vertical” if it forms an angle of0° or 90° with respect to one of the coordinate axes of the layout.

In some embodiments described below, stripes of a power grid structureare positioned vertically (i.e., parallel to the layout's y-coordinateaxis) across a top layer of the IC and rails of a power grid structureare positioned horizontally (i.e., parallel to the layout's x-coordinateaxis) across a lower layer of the IC. One of ordinary skill in the artwill realize that the stripes may be positioned horizontally and/or belaid on a different layer or on multiple layers of the IC in otherembodiments. One of ordinary skill in the art will also realize that therails may be positioned vertically and/or may be laid on a differentlayer or on multiple layers of the IC in other embodiments. Power gridstructures having stripes positioned vertically or horizontally andrails positioned vertically or horizontally are referred to as Manhattanpower grid structures.

As used herein, the term “intersection” refers to a location where astripe and rail cross in terms of an IC layout's x and y-coordinateaxes, and does not refer to an actual physical intersection of thestripe and rail.

I. FIG. 2 illustrates a top view of a region of an IC layout having apower grid structure 200 with a reduced number of vias in accordancewith the present invention. The power grid structure 200 includesstripes 205 and 207, rails 210 and 212, and vias 215 and 217.

Stripes are positioned parallel to one another and vertically (i.e.,parallel to the layout's y-coordinate axis) across a top layer of the ICand provide power and ground to the IC. A stripe that carries power isreferred to as a power stripe 205 and a stripe that carries ground isreferred to as a ground stripe 207. A stripe is defined by its width (interms of x-coordinates of the layout) and its location on the layer. Thelocations of power stripes 205 are defined by a distance (in terms ofx-coordinates) from an edge of the layout of a first power stripe 205and a distance defined by a stripe spacing width (in terms ofx-coordinates) between power stripes 205 thereafter. The locations ofground stripes 207 are defined by a distance (in terms of x-coordinates)from an edge of the layout of a first ground stripe 207 and a distancedefined by the stripe spacing width (in terms of x-coordinates) betweenground stripes 207 thereafter.

Power and ground stripes may be evenly spaced (i.e., the distancebetween a power and ground stripe is uniform throughout the power gridstructure) or unevenly spaced (i.e., the distance between a power andground stripe is not uniform throughout the power grid structure). Inthe example shown in FIG. 2, the power grid structure 200 has unevenlyspaced power and ground stripes since the distance between a powerstripe 205 and a ground stripe 207 is different than the distancebetween a next power stripe 205 and the ground stripe 207.

Rails 210 and 212 are positioned parallel to one another andhorizontally (i.e., parallel to the layout's x-coordinate axis) acrossat least one lower layer of the IC. Each rail is connected to a stripethrough vias. Although some rails in the region of the IC layout shownin FIG. 2 are not shown to be connected to a stripe through vias, eachrail is connected to a stripe through vias at least once in the entiretyof the IC layout. A rail connected to a power stripe 205 is referred toas a power rail 210 and a rail 210 connected to a ground stripe 207 isreferred to as a ground rail 212. Power and ground rails 210 and 212 areplaced in a perpendicular position relative to the power and groundstripes 205 and 207 so that power stripe and power rail intersectionsare formed (in terms of the IC layout's x and y-coordinate axes) andground stripe and ground rail intersections are formed (in terms of theIC layout's x and y-coordinate axes).

A power rail 210 and a ground rail 212 are connected to each electronicand circuit component (not shown) of the IC through the power pin andground pin, respectively, of the electronic or circuit component. A railis defined by its width (in terms of y-coordinates) and its location onthe layer. The locations of the rails are defined by a distance (interms of y-coordinates) from an edge of the layout of a first rail and adistance defined by a rail spacing width (in terms of y-coordinates)between rails thereafter.

Vias 215 and 217 are positioned perpendicular to the IC's layers (i.e.,parallel to the layout's z-coordinate axis) and distribute power orground from the stripes to the rails. Multiple vias are arranged in avia array which is used to connect a stripe to a rail. For illustrativepurposes, FIG. 2 shows a top view of a via array as enclosed by abounding box, the via array being comprised of multiple vias.

A via (or a via array comprised of multiple vias) spans from one layerto a next adjacent layer of the IC. To span several layers, several vias(or several via arrays) are stacked from one layer to another. Stackedvias (or stacked via arrays) are used to span more than one layer toconnect stripes (typically located on the top layer) to rails (typicallylocated on a lower layer). A via (or via array) that connects (eitherdirectly or through another via) a power stripe 205 and a power rail 210is referred to as a power via 215 (or power via array). A via thatconnects (either directly or through another via) a ground stripe 207and a ground rail 212 is referred to as a ground via 217 (or ground viaarray).

Areas between the vias on the layout define wiring tracks (i.e., wiringcapacity) where signal wiring required for the IC layout (i.e., wiringdemand) can be routed. Wiring tracks that allow horizontal, vertical, ordiagonal wiring on the layout are referred to as horizontal, vertical,or diagonal wiring tracks, respectively. Layouts having relatively largeamounts of horizontal wiring tracks are beneficial to horizontal wiringpaths and layers having horizontal preferred wiring, for example, layers1 and 3 of the six-layer wiring model. Layouts having relatively largeamounts of vertical wiring tracks are beneficial to vertical wiringpaths and layers having vertical preferred wiring, for example, layer 2of the six-layer wiring model. Layouts having relatively large amountsof 45° diagonal wiring tracks are beneficial to 45° diagonal wiringpaths and layers having 45° diagonal preferred wiring, for example,layer 4 of the six-layer wiring model. Layouts having relatively largeamounts of 135° diagonal wiring tracks are beneficial to 135° diagonalwiring paths and to layers having 135° diagonal preferred wiring, forexample, layer 5 of the six-layer wiring model.

Note that in the power grid structure 200 of the present invention, apower via 215 (or power via array) is not located at every power stripe205 and power rail 210 intersection (i.e., power intersection) and aground via 217 (or ground via array) is not located at everyintersection of a ground stripe 207 and ground rail 212 (i.e., groundintersection). In the example shown in FIG. 2, a power via 215 (or powervia array) is located only at every 2^(nd) power intersection and aground via 217 (or ground via array) is located only at every 2^(nd)ground intersection. In other embodiments, a power via 215 (or power viaarray) is located only at every Dth power intersection and a ground via217 (or ground via array) is located only at every Dth groundintersection, D being an integer greater than 1.

Therefore, the power grid structure 200 of the present invention has areduced number of vias (or via arrays) relative to conventional powergrid structures. This allows larger wiring tracks between the vias ofthe power grid structure 200 relative to the wiring tracks between thevias of a conventional power grid structure. Also, the power and groundvias 215 and 217 of the power grid structure 200 are located in aparticular pattern that is especially beneficial to 135° diagonal wiringpaths. Such a pattern of power and ground vias 215 and 217 can beproduced by a predetermined formula, as described in relation to FIG. 7.A 45° diagonal direction arrow 230 and a 135° diagonal direction arrow232 illustrate how a 135° diagonal wiring track is larger than a 45°diagonal wiring track between vias 215 and 217 of the power gridstructure 200.

In some embodiments, a power grid structure has a spacing width betweenstripes that is an integer multiple of the spacing width between railsof the power grid structure. By having the stripe spacing width as aninteger multiple of the rail spacing width, vias (which are located atthe intersections of the stripes and rails) are placed in positions thatdo not cause substantial diagonal wiring blockage and increases theamount of diagonal signal wiring that can be routed between the vias.Methods to produce such a power grid structure is described in detail inU.S. patent application Ser. No. 10/452,100, now issued as U.S. Pat. No.7,003,748, entitled “Methods and Apparatus for Defining Manhattan PowerGrid Structures Beneficial to Diagonal Signal Wiring,” filed herewithand hereby expressly incorporated herein by reference.

FIG. 3 illustrates a top view of a region of an IC layout having a powergrid structure 300 with a spacing width between stripes that is aninteger multiple of the spacing width between rails. The power gridstructure 300 includes power stripes 305, ground stripes 307, powerrails 310, ground rails 312, power vias 315, and ground vias 317. Notethat the power stripes 305 and ground stripes 307 are evenly spaced(i.e., the distance between a power stripe 305 and a ground stripe 307is consistent throughout the power grid structure).

A 45° diagonal direction arrow 330 and a 135° diagonal direction arrow332 illustrate how diagonal signal wiring can be routed between vias (orvia arrays) of the power grid structure 300. Note that a power via 315(or power via array) is located at every intersection of a power stripe305 and a power rail 310 and that a ground via 317 (or ground via array)is located at every intersection of a ground stripe 307 and ground rail312.

FIG. 4 illustrates a top view of a region of an IC layout having a powergrid structure 400 with a reduced number of vias that is beneficial to45° diagonal wiring paths. The power grid structure 400 is the powergrid structure 300 of FIG. 3 with a reduced number of vias or viaarrays. In the power grid structure 400, a power via 315 (or power viaarray) is not located at every power stripe 305 and power rail 310intersection (i.e., power intersection) and a ground via 317 (or groundvia array) is not located at every intersection of a ground stripe 307and ground rail 312 (i.e., ground intersection). In the example shown inFIG. 4, a power via 315 (or power via array) is located only at every2^(nd) power intersection and a ground via 317 (or ground via array) islocated only at every 2^(nd) ground intersection. In other embodiments,a power via 315 (or power via array) is located at every Dth powerintersection and a ground via 317 (or ground via array) is located atevery Dth ground intersection, D being an integer greater than 1.

The reduced number of vias (or via arrays) in the power grid structure400 relative to the power grid structure 300 of FIG. 3 allows largerwiring tracks between the vias of the power grid structure 400. The vias(or via arrays) of the power grid structure 400 have been located in aparticular pattern that is especially beneficial to 45° diagonal wiringpaths. Such a pattern of vias can be produced by a predeterminedformula, as described in relation to FIGS. 6 (step 657) and 7 (step740). A 45° diagonal direction arrow 430 and a 135° diagonal directionarrow 432 illustrate how a 45° diagonal wiring track is larger than a135° diagonal wiring track between vias of the power grid structure 400.

FIG. 5 illustrates a top view of a region of an IC layout having a powergrid structure 500 with a reduced number of vias that is beneficial to135° diagonal wiring paths. The power grid structure 500 is the powergrid structure 300 of FIG. 3 with a reduced number of vias or viaarrays. In the example shown in FIG. 5, a power via 315 (or power viaarray) is located only at every 2^(nd) power intersection and a groundvia 317 (or ground via array) is located only at every 2^(nd) groundintersection. In other embodiments, a power via 315 (or power via array)is located at every Dth power intersection and a ground via 317 (orground via array) is located at every Dth ground intersection, D beingan integer greater than 1.

The reduced number of vias (or via arrays) in the power grid structure500 relative to the power grid structure 300 of FIG. 3 allows largerwiring tracks between the vias of the power grid structure 500. The vias(or via arrays) of the power grid structure 400 have been located in aparticular pattern that is especially beneficial to 135° diagonal wiringpaths. Such a pattern of vias can be produced by a predeterminedformula, as described in relation to FIG. 7. A 45° diagonal directionarrow 530 and a 135° diagonal direction arrow 532 illustrate how a 135°diagonal wiring track is larger than a 45° diagonal wiring track betweenvias of the power grid structure 500.

FIG. 6 shows a general process 600 for defining and producing a powergrid structure of an IC with a reduced number of vias (or via arrays) inaccordance with the present invention. The general process 600 thusreduces the area of the power grid structure and the diagonal wiringblockage caused by the power grid structure while still meeting designspecifications. The general process 600 includes processes of a powergrid planner, power grid router, power grid verifier, and global signalrouter that are used iteratively to define and produce a power gridstructure.

The general process 600 begins when the receives (at 610) dimensions andlocations of power grid components (stripes, rails, and vias) for eachIC layer and sends the dimensions and locations to the power grid router(for example, as a set of commands). The dimensions and locations ofpower grid components may be defined by conventional methods or bymethods as described in the aforementioned patent application titled“Method and Apparatus for Defining Power Grid Structures of IntegratedCircuits.” The received dimensions and locations of power gridcomponents will define locations for a particular number of vias or viaarrays and define a particular pattern of vias in the power gridstructure. The received dimensions and locations place a power via (orpower via array) at every power stripe and power rail intersection and aground via (or ground via array) at every ground stripe and ground railintersection.

The power grid router receives (at 615) dimensions and locations of thepower grid components (for example, as a set of commands) and physicallylays down the power grid components for each layer of the IC accordingto the received dimensions and locations. The power grid verifier thentests (at 620) the resulting power grid structure to determine if thepower grid structure meets the design specifications (i.e., minimumspecifications that the power grid structure must meet in order to beacceptable for use in the IC). The power grid verifier may be comprisedof, for example, a Spice-based simulator. If the power grid verifierdetermines (at 625—No) that the power grid structure does not meet thedesign specifications, the general process 600 aborts (at 630). Thegeneral process 600 aborts since a power grid structure defined by thereceived dimensions and locations can not be further reduced (i.e., byreducing the number of vias or via arrays) and still meet designspecifications.

If the power grid verifier determines (at 625—Yes) that the power gridstructure meets the design specifications, the global signal routerperforms (at 640) global signal routing operations for each signal netof the IC. For each signal net, the global signal router generates a“loose” route for interconnect lines that are to connect the signal pinsof the signal net. The routes for the interconnect lines define routesfor signal wiring that interconnect electronic and circuit components ofthe IC.

The global signal router then tests (at 645) to determine whether theglobal signal routing was successful. This can be determined, forexample, by determining and comparing a wiring capacity and wiringdemand for each layer of the IC. Wiring capacity is the amount of wiringtracks available on a layer whereas wiring demand is the amount ofwiring that the global signal router is attempting to route through alayer. If the wiring demand exceeds the wiring capacity on a layer ofthe IC, the global signal routing is not successful on that layer. Ifthe wiring demand exceeds the wiring capacity on any layer of the IC,the global signal router determines (at 645—No) that the global signalrouting for the IC is not successful. For example, if the wiring demandexceeds the wiring capacity only on layer 5 (layer 5 having 135°diagonal preferred wiring), the global signal router determines that theglobal signal routing is not successful. The global signal router thensends (at 650) a failure notice to the power grid planner.

The power grid planner receives (at 655) the failure notice. The powergrid planner then modifies (at 657) via or via array locations and/orreduces the number of vias or via arrays of the power grid structure todetermine refined dimensions and locations of power grid components. Thepower grid planner may change the locations of the vias or via arrays tobe beneficial to 45° diagonal preferred wiring or 135° diagonalpreferred wiring. For example, if the wiring demand exceeds the wiringcapacity on layer 5 (layer 5 having 135° diagonal preferred wiring), thepower grid planner may change the locations of the vias or via arrays tobe beneficial to 135° diagonal preferred wiring (as shown in FIGS. 2 and5).

Alternatively, or in addition, the power grid planner may reduce thenumber of vias or via arrays in the power grid structure by locating apower via (or power via array) only at every Dth power intersection anda ground via (or ground via array) only at every Dth groundintersection, D being an integer greater than 1. The power grid plannermay modify (at 657) the via or via array locations and/or reduce thenumber of vias or via arrays by methods of trial and error or by usingpredetermined formulas, as described below in relation to FIG. 7. Thepower grid planner determines (at 657) refined dimensions and locationsfor the power grid components given any modifications that were made.

The general process 600 then repeats steps 615 through 645. Therefore,the dimensions and locations of the power grid components are refinedthrough an iterative process between the power grid planner, the powergrid router, the power grid verifier, and the global signal router(where an iterative loop is formed by steps 615 through 657) thatmodifies the via or via array locations and/or reduces the number ofvias or via arrays until the global signal routing is successful. Thegeneral process 600 produces a power grid structure with a reducednumber of vias or via arrays that still meets design specifications.

If the wiring demand does not exceed the wiring capacity on any layer ofthe IC, the global signal router determines (at 645—Yes) that the globalsignal routing is successful. A detailed signal router then performs (at660) detailed signal routing to create specific individual routes foreach signal net. Then the general process 600 ends.

FIG. 7 shows a process 700 of a power grid planner for defining andproducing a power grid structure of an IC with a reduced number of vias(or via arrays) in accordance with the present invention. The process700 begins when the power grid planner receives (at 710) designspecifications for the power grid structure and sends the designspecifications to the power grid verifier. Design specifications areminimum specifications that the power grid structure must meet in orderto be acceptable for use in the IC. Different design specifications maybe specified for a power net (a collection of power pins that need to beconnected in the IC) and a ground net (a collection of ground pins thatneed to be connected in the IC). Design specifications may include, forexample, a threshold voltage drop across the power grid structure, athreshold voltage required at each power pin of an electronic or circuitcomponent of the IC, and/or a switching frequency threshold of the IC.Design specifications may also include, for example, a thresholdelectro-migration value which reflects metal breakdown due to Jouleheat, operational temperature, or its operational year total and/or athreshold switching noise value which reflects voltage reduction on apower supply due to a current change during logic switching.

The power grid planner then receives (at 720) dimensions and locationsof power grid components (stripes, rails, and vias) for each IC layer.The dimensions and locations of power grid components may be defined byconventional methods or methods as described in the aforementionedpatent application titled “Method and Apparatus for Defining Power GridStructures of Integrated Circuits.” The dimensions and locations ofpower grid components define the power grid structure to be produced forthe IC. The received dimensions and locations of power grid componentswill define locations for a particular number of vias or via arrays anddefine a particular pattern of vias in the power grid structure. Thereceived dimensions and locations place a power via (or power via array)at every power stripe and power rail intersection and a ground via (orground via array) at every ground stripe and ground rail intersection.The power grid planner then sends (at 725) the dimensions and locationsto the power grid router (for example, as a set of commands).

As described above in relation to FIG. 6, the power grid router receivesthen the dimensions and locations of the power grid components andphysically lays down the power grid structure components for each IClayer. The power grid verifier tests the resulting power grid structure,and the global signal router performs global signal routing operationsif the power grid verifier determines that the power grid structuremeets the design specifications. If the global signal routing was notsuccessful, the global signal router sends to the power grid planner afailure notice. Therefore, after step 725, the power grid planner checks(at 730) to determine if a failure notice has been received from theglobal signal router.

If so, the power grid planner modifies (at 740) via or via arraylocations and/or reduces the number of vias or via arrays of the powergrid structure to determine refined dimensions and locations of powergrid components. For example, the power grid planner may reduce thenumber of vias or via arrays in the power grid structure by locating apower via (or power via array) only at every Dth power intersection anda ground via (or ground via array) only at every Dth groundintersection, D being an integer greater than 1.

In other embodiments, the power grid planner changes the locations ofthe vias or via arrays to be beneficial to 45° diagonal preferred wiringor 135° diagonal preferred wiring. For example, if the power gridstructure only has a power via (or power via array) located at every2^(nd) power intersection and a ground via (or ground via array) locatedat every 2^(nd) ground intersection and the locations of the vias arebeneficial to 45° diagonal preferred wiring (as shown in FIG. 4), thepower grid structure may change the locations of the vias to bebeneficial to 135° diagonal preferred wiring (as shown in FIG. 5). Inthe first iteration of an iterative loop formed by steps 725, 730, and740, however, the power grid planner will only reduce the number of viasand will not change the locations of the vias since the power gridstructure in the first iteration has a power via at every powerintersection and a ground via at every ground intersection so that thelocations of vias can not be modified.

The power grid planner may modify (at 740) the via or via arraylocations and/or reduce the number of vias or via arrays by methods oftrial and error or by using predetermined formulas. Predeterminedformulas for specific situations may be used by the power grid plannerto produce specific results. For example, for locating a power via (orpower via array) only at every Dth power intersection and a ground via(or ground via array) only at every Dth ground intersection, where D isan even integer greater than 1 and the power stripes and ground stripesof the power grid structure are evenly spaced, the followingpredetermined formulas and conditions may be used:

-   -   Power vias (or power via arrays) are placed at locations defined        by (PXi, PYj) where:        -   PXi=(D−1)*2*i;        -   PYj=(2*D*j)+2*(D−(i mod d));

$0 \leq i \leq {{ceil}\left( \frac{Nc}{2*\left( {D - 1} \right)} \right)}$

-   -   -   and i is an integer;

${- 1} \leq j \leq {{ceil}\left( \frac{{Nr} - {2*D}}{2*D} \right)}$

-   -   -   and j is an integer;        -   Nc is equal to the width of an IC layout, where one unit of            Nc is equal to the spacing width between rails of the power            grid structure and the width is in terms of x coordinates of            the IC layout;        -   Nr is equal to the length of an IC layout, where one unit of            Nr is equal to the spacing width between rails of the power            grid structure and the length is in terms of y coordinates            of the IC layout;        -   a floor(x) function returns a floating-point value            representing the largest integer that is less than or equal            to x; and        -   a ceil(x) function returns a floating-point value            representing the smallest integer that is greater than or            equal to x.        -   For all computed locations of power vias (or power via            arrays), discard any locations that falls outside: 0≦PXi≦Nc            and 0≦PYi≦Nr

    -   Ground vias (or ground via arrays) are placed at locations        defined by (Gn3i, GndYj) where:        -   GndXi=(D−1)*(2*i+1);        -   GndYj=(2*D*j)+(D−1)+2*(D−1)*(i mod D);

$0 \leq i \leq {{ceil}\left( \frac{\frac{Nc}{D - 1} - 1}{2} \right)}$

-   -   -   and i is an integer; and

${{floor}\mspace{11mu}\left( \frac{1 - D}{2} \right)} \leq j \leq {{ceil}\;\left( \frac{{Nr} - \left( {D - 1} \right) - {2*\left( {D - 1} \right)*\left( {D - 1} \right)}}{2*D} \right)}$

-   -   -   ; and j is an integer;        -   For all computed locations of ground vias (or ground via            arrays), discard any locations that falls outside:            0≦GndXi≦Nc and 0≦GndYi≦Nr

    -   For example, with D=4, Nr=29, Nc=39, we have:        -   Locations of power vias or power via arrays at (PXi,            PYj)=(0 0) (0 8) (0 16) (0 24) (6 6) (6 14) (6 22) (12 4)            (12 12) (12 20) (12 28) (18 2) (18 10) (18 18) (18 26)            (24 0) (24 8) (24 16) (24 24) (30 6) (30 14) (30 22) (36 4)            (36 12) (36 20) (36 28); and        -   Locations of ground vias or ground via arrays at (Gn3i,            GndYj)=(3 3) (3 11) (3 19) (3 27) (9 1) (9 9) (9 17) (9 25)            (15 7) (15 15) (15 23) (21 5) (21 13) (21 21) (21 29) (27 3)            (27 11) (27 19) (27 27) (33 1) (33 9) (33 17) (33 25) (39 7)            (39 15) (39 23).

In using the above predetermined formulas and conditions, to locate vias(or via arrays) in a pattern that is beneficial to 45° diagonal wiringpaths, the y coordinates of the IC layout increases from south (thebottom of the IC layer) to north (the top of the IC layer). To locatevias (or via arrays) in a pattern that is beneficial to 135° diagonalwiring paths, the y coordinates of the IC layout increases from north(the top of the IC layer) to south (the bottom of the IC layer). Inother embodiments, other predetermined formulas are used by the powergrid planner. For example, a predetermined formula for when D is a oddinteger and/or the power stripes and ground stripes of the power gridstructure are not evenly spaced may be used by the power grid planner.

After the power grid planner modifies (at 740) via or via arraylocations and/or reduces the number of vias or via arrays of the powergrid structure to determine refined dimensions and locations of powergrid components, the power grid planner repeats steps 725 and 730. Aniterative loop is formed by steps 725, 730, and 740 to modify the powergrid structure until the global signal routing is successful.

If the power grid planner did not receive (at 730—No) a failure noticefrom the global signal router, the process 700 ends.

II. As stated above, multiple vias are typically arranged in a via arraythat causes significant diagonal wiring blockage near the edges of thevia array. FIG. 8 shows a top view of a conventional via array 800 asenclosed by a rectangular bounding box 805, the via array 800 beingcomprised of multiple vias 810. The bounding box 805 has an aspect ratiodefined by a width of the bounding box 805 divided by a length of thebounding box 805. The aspect ratio of a bounding box 805 enclosing aconventional via array is typically not approximately equal to 1.Diagonal direction arrows 820 illustrate how diagonal wiring paths areblocked by vias 810 near the edges of the via array 800. In the exampleshown in FIG. 8, there are 5 vias 810 in the via array 800.

FIGS. 9A and 9B show a top view of a via array 900 that is beneficial todiagonal wiring paths. The via array 900 is enclosed by a bounding box905 and 907 and is comprised of multiple vias 910. In the example shownin FIG. 9, there are 5 vias 910 in the via array 900, which is the samenumber of vias in the conventional via array 800 of FIG. 8.

The bounding box 905 and 907 encloses all vias 910 of the via array 900and each side of the bounding box 905 and 907 touches a side of at leastone via 910. The sides of the bounding box 905 of FIG. 9A are parallelto sides of the vias 910 and is referred to as a Manhattan bounding box.The sides of the bounding box 907 of FIG. 9B are diagonal to sides ofthe vias 910 and is referred to as a diagonal bounding box.

The bounding box 905 and 907 has an aspect ratio defined by a width ofthe bounding box divided by a length of the bounding box. The aspectratio of the bounding box 905 and 907 enclosing the via array 900 isapproximately equal to 1. This is true whether the bounding box is aManhattan bounding box (as shown in FIG. 9A) or a diagonal bounding box907 (as shown in FIG. 9B). When the aspect ratio of a bounding boxenclosing a via array is approximately equal to 1, there is lessdiagonal wiring blockage near the edges of the via array. Diagonaldirection arrows 920 illustrate how diagonal wiring tracks can be routednear the edges of the via array 900.

FIG. 10 shows a top view of another conventional via array 1000. The viaarray 1000 is enclosed by a rectangular bounding box 1005 and iscomprised of multiple vias 1010. Note that the bounding box 1005 has anaspect ratio that is not approximately equal to 1 and that there are 10vias 1010 in the via array 1000. Diagonal direction arrows 1020illustrate how diagonal wiring paths are blocked by vias 1010 near theedges of the via array 1000.

FIGS. 11A and 11B show a top view of another via array 1100 that isbeneficial to diagonal wiring paths. The via array 1100 is enclosed by aManhattan bounding box 1105 (as shown in FIG. 11A) and/or a diagonalbounding box 1107 (as shown in FIG. 11B) and is comprised of multiplevias 1110. Note that the number of vias 1110 (10) in the via array 1100is the same number of vias 1110 in the conventional via array 1000 ofFIG. 10. The aspect ratio of the Manhattan bounding box 1105 and thediagonal bounding box 1107 is approximately equal to 1. Diagonaldirection arrows 1120 illustrate how diagonal wiring tracks can berouted near the edges of the via array 1100.

In the embodiments described above, the power grid structure isdescribed in relation to a six-layer wiring model that has horizontalwiring on wiring layer 1, vertical wiring on wiring layer 2, horizontalwiring on wiring layer 3, 45° diagonal wiring on wiring layer 4, and135° diagonal wiring on wiring layer 5. One of ordinary skill in the artwill realize that the power grid structure can be used in other wiringmodels in other embodiments. In some embodiments, an interconnect lineis “diagonal” if it forms an angle other than 0° or 90° with respect tothe layout's Cartesian coordinate axes, which are typically parallelwith the layout's boundary and/or the boundary of the layout's expectedIC. A component or interconnect line is “horizontal” or “vertical” if itforms an angle of 0° or 90° with respect to one of the coordinate axesof the layout.

In some embodiments described above, stripes of a power grid structureare positioned vertically (i.e., parallel to the layout's y-coordinateaxis) across a top layer of the IC and rails of a power grid structureare positioned horizontally (i.e., parallel to the layout's x-coordinateaxis) across a lower layer of the IC. One of ordinary skill in the artwill realize that the stripes may be positioned horizontally and/or belaid on a different layer or on multiple layers of the IC in otherembodiments. One of ordinary skill in the art will also realize that therails may be positioned vertically and/or may be laid on a differentlayer or on multiple layers of the IC in other embodiments.

As used in the description above, the term “intersection” refers to alocation where a stripe and rail cross in terms of an IC layout's x andy-coordinate axes, and does not refer to an actual physical intersectionof the stripe and rail.

Several embodiments have been described above in relation to power gridstructures having a reduced number of vias and having vias located insuch a way as to be especially beneficial to 45° or 135° diagonal wiringpaths. These embodiments may be combined with methods for defining powergrid structures having minimized power grid structure areas andminimized diagonal wiring blockage caused by the power grid structurewhile still meeting design specifications. The above describedembodiments may also be combined with methods for determining dimensionsand locations of power grid components using a power grid formula and aset of constraints as used in an iterative process involving a powergrid planner, a power grid router, a power grid verifier, and a globalsignal router. Such methods are described in U.S. patent applicationSer. No. 10/452,100, now issued as U.S. Pat. No. 7,003,748, entitled“Methods and Apparatus for Defining Manhattan Power Grid StructuresBeneficial to Diagonal Signal Wiring,” filed herewith and herebyexpressly incorporated herein by reference.

In addition, the above described embodiments may be combined withmethods for defining power grid structures having diagonal stripesplaced on one or more layers of an IC or with methods for defining powerstripes having non-uniform widths and/or non-uniform spacing widths on alayer of the IC. Such methods are described in U.S. patent applicationSer. No. 10/452,848, now issued as U.S. Pat. 7,086,024, entitled“Methods and Apparatus for Defining Power Grid Structures HavingDiagonal Stripes,” filed herewith and hereby expressly incorporatedherein by reference.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. Thus, one of ordinary skill in the artwould understand that the invention is not to be limited by theforegoing illustrative details, but rather is to be defined by theappended claims.

1. A machine-implemented method of defining a power grid structure foruse in an integrated circuit, wherein the power grid structure iscomprised of a plurality of power grid structure components including aplurality of stripes, a plurality of rails, and a plurality of vias, andthe integrated circuit contains electronic and circuit components, themethod comprising: receiving dimensions and locations for the pluralityof power grid structure components, wherein the dimensions and locationsdefine locations for a particular number of vias and define a particularpattern of vias in the power grid structure; laying down the pluralityof power grid structure components according to the dimensions andlocations to produce the power grid structure; performing global signalrouting to define routes for signal wiring that interconnect theelectronic and circuit components of the integrated circuit; testingwhether the global signal routing is successful; and reducing the numberof vias in the power grid structure upon determining that the globalsignal routing is not successful, wherein said reducing is performed bya machine.
 2. The method of claim 1 further comprising: repeating saidlaying, said performing, said testing, and said reducing in an iterativeloop until the global signal routing is successful.
 3. The method ofclaim 2, wherein the integrated circuit comprises multiple layers,wherein the repeating in an iterative loop occurs separately for eachlayer until successful.
 4. The method of claim 1 wherein the reducing isperformed using a predetermined formula.
 5. The method of claim 1further comprising: modifying locations of vias in the power gridstructure to produce a modified pattern of vias in the power gridstructure so that a first type of diagonal wiring track between the viasis larger than a second type of diagonal wiring track between the vias.6. The method of claim 5 wherein the first type of diagonal wiring trackis a 45° diagonal wiring track and the second type of diagonal wiringtrack is a 135° diagonal wiring track.
 7. The method of claim 5 whereinthe first type of diagonal wiring track is a 135° diagonal wiring trackand the second type of diagonal wiring track is a 45° diagonal wiringtrack.
 8. The method of claim 1, wherein the integrated circuitcomprises at least two layers of wiring, each layer comprising adifferent preferred wiring direction.
 9. The method of claim 8, whereinthe reducing the number of vias in the power grid structure comprisesmodifying the dimensions and locations of the power grid structurecomponents to be beneficial to a particular preferred wiring directionof a particular layer.
 10. The method of claim 8, wherein the testingwhether the global signal routing is successful comprises determining awiring capacity of a particular layer and a wiring demand for theparticular layer, wherein if the demand exceeds the capacity for theparticular layer then the routing is unsuccessful.
 11. The method ofclaim 10, wherein the wiring capacity is determined by an area that thepower grid structure components occupy on the particular layer.
 12. Themethod of claim 1, wherein the reducing the number of vias reducesdiagonal wiring blockage for at least one layer of the integratedcircuit.
 13. The method of claim 1, wherein the integrated circuitcomprises a first manhattan layer and a second diagonal layer, whereinthe reducing the number of vias comprises (i) reducing manhattan wiringblockage for the first manhattan layer, and (ii) reducing diagonalwiring blockage for the second diagonal layer.
 14. The method of claim 1further comprising modifying at least one dimension or location of theplurality of power grid structure components prior to the reducing thenumber of vias, wherein reducing the number of vias is based on themodified dimensions and locations.
 15. The method of claim 14, whereinthe modifying the at least one dimension or location comprisesdecreasing a minimum area, a maximum area, or the minimum and themaximum area that the power grid structure components can occupy on aparticular layer of the integrated circuit.
 16. A computer readablemedium storing a computer program for defining a power grid structurefor use in an integrated circuit, wherein the power grid structure iscomprised of a plurality of power grid structure components including aplurality of stripes, a plurality of rails, and a plurality of vias, andthe integrated circuit contains electronic and circuit components, thecomputer program executable by at least one processor, the computerprogram comprising sets of instructions for: receiving dimensions andlocations for the plurality of power grid structure components, whereinthe dimensions and locations define locations for a particular number ofvias and define a particular pattern of vias in the power gridstructure; laying down the plurality of power grid structure componentsaccording to the dimensions and locations to produce the power gridstructure; performing global signal routing to define routes for signalwiring that interconnect the electronic and circuit components of theintegrated circuit; testing whether the global signal routing issuccessful; and reducing the number of vias in the power grid structureupon determining that the global signal routing is not successful. 17.The computer readable medium of claim 16 further comprising sets ofinstructions for: repeating said laying, said performing, said testing,and said reducing in an iterative loop until the global signal routingis successful.
 18. The computer readable medium of claim 16, wherein thereducing is performed using a predetermined formula.
 19. The computerreadable medium of claim 16 further comprising sets of instructions for:modifying locations of vias in the power grid structure to produce amodified pattern of vias in the power grid structure so that a firsttype of diagonal wiring track between the vias is larger than a secondtype of diagonal wiring track between the vias.
 20. The computerreadable medium of claim 19, wherein the first type of diagonal wiringtrack is a 45° diagonal wiring track and the second type of diagonalwiring track is a 135° diagonal wiring track.